package s6_排序算法;

import java.util.Random;

/**
 * @author wisdomelon
 * @date 2020/7/28 0028
 * @project data_study
 * @jdk 1.8
 */
public abstract class BaseSort {

    public static final int SIZE = 100000;


    public static int[] simple() {

        return new int[]{54, 19, 3, 69, 58};
    }

    public static int[] normal() {

        return new int[]{8, 9, 1, 7, 2, 3, 5, 4, 6, 0};
    }

    public static int[] data() {
        int[] arr = {57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58,
                57, 48, 97, 68, 19, 58, 76, 62, 97, 84, 32, 17, 15, 86, 68, 2, 90, 85, 24, 46, 39, 26, 6, 70, 95, 51, 84, 95, 24, 67, 73, 97, 13, 73, 26, 50, 54, 23, 82, 64, 89, 32, 65, 65, 19, 56, 73, 68, 57, 79, 54, 19, 3, 69, 58};

        return arr;
    }

    public static int[] random() {
        int[] arr = new int[SIZE];
        for(int i=0; i<SIZE; i++) {
            arr[i] = new Random().nextInt(10000);
        }
        return arr;
    }

    public abstract void asc(int[] arr);
}
